{
  "_format": "hh-sol-artifact-1",
  "contractName": "Library",
  "sourceName": "contracts/Library.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "bookId",
          "type": "uint256"
        }
      ],
      "name": "AddBook",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "bookId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "finished",
          "type": "bool"
        }
      ],
      "name": "SetFinished",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "name",
          "type": "string"
        },
        {
          "internalType": "uint16",
          "name": "year",
          "type": "uint16"
        },
        {
          "internalType": "string",
          "name": "author",
          "type": "string"
        },
        {
          "internalType": "bool",
          "name": "finished",
          "type": "bool"
        }
      ],
      "name": "addBook",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getFinishedBooks",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            },
            {
              "internalType": "string",
              "name": "name",
              "type": "string"
            },
            {
              "internalType": "uint256",
              "name": "year",
              "type": "uint256"
            },
            {
              "internalType": "string",
              "name": "author",
              "type": "string"
            },
            {
              "internalType": "bool",
              "name": "finished",
              "type": "bool"
            }
          ],
          "internalType": "struct Library.Book[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getUnfinishedBooks",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            },
            {
              "internalType": "string",
              "name": "name",
              "type": "string"
            },
            {
              "internalType": "uint256",
              "name": "year",
              "type": "uint256"
            },
            {
              "internalType": "string",
              "name": "author",
              "type": "string"
            },
            {
              "internalType": "bool",
              "name": "finished",
              "type": "bool"
            }
          ],
          "internalType": "struct Library.Book[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bookId",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "finished",
          "type": "bool"
        }
      ],
      "name": "setFinished",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50610f3f806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80636aa835a81461005157806376d9e5a01461006d578063c079766d1461008b578063f2bc01ff146100a7575b600080fd5b61006b600480360381019061006691906109fd565b6100c5565b005b6100756101cd565b6040516100829190610bec565b60405180910390f35b6100a560048036038101906100a0919061096a565b6101de565b005b6100af610341565b6040516100bc9190610bec565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff166001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156101c9578060008381548110610167577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906005020160040160006101000a81548160ff0219169083151502179055507fa4f349f92993cc89f62be8c4bead1bd7d76d2e9c4d05da59739c6e0dd75f042c82826040516101c0929190610c0e565b60405180910390a15b5050565b60606101d96001610352565b905090565b60008080549050905060006040518060a001604052808381526020018781526020018661ffff16815260200185815260200184151581525090806001815401808255809150506001900390600052602060002090600502016000909190919091506000820151816000015560208201518160010190805190602001906102659291906107ef565b5060408201518160020155606082015181600301908051906020019061028c9291906107ef565b5060808201518160040160006101000a81548160ff0219169083151502179055505050336001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f10545577c692a22f651e69221c47ad4418e40434b36f4e2411bc54007aa8cbb93382604051610332929190610bc3565b60405180910390a15050505050565b606061034d6000610352565b905090565b60606000808054905067ffffffffffffffff81111561039a577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156103d357816020015b6103c0610875565b8152602001906001900390816103b85790505b5090506000805b6000805490508110156106c1573373ffffffffffffffffffffffffffffffffffffffff166001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156104b057508415156000828154811061048d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906005020160040160009054906101000a900460ff161515145b156106ae57600081815481106104ef577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600502016040518060a00160405290816000820154815260200160018201805461052290610d7a565b80601f016020809104026020016040519081016040528092919081815260200182805461054e90610d7a565b801561059b5780601f106105705761010080835404028352916020019161059b565b820191906000526020600020905b81548152906001019060200180831161057e57829003601f168201915b50505050508152602001600282015481526020016003820180546105be90610d7a565b80601f01602080910402602001604051908101604052809291908181526020018280546105ea90610d7a565b80156106375780601f1061060c57610100808354040283529160200191610637565b820191906000526020600020905b81548152906001019060200180831161061a57829003601f168201915b505050505081526020016004820160009054906101000a900460ff161515151581525050838381518110610694577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018190525081806106aa90610ddd565b9250505b80806106b990610ddd565b9150506103da565b5060008167ffffffffffffffff811115610704577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561073d57816020015b61072a610875565b8152602001906001900390816107225790505b50905060005b828110156107e357838181518110610784577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101518282815181106107c5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018190525080806107db90610ddd565b915050610743565b50809350505050919050565b8280546107fb90610d7a565b90600052602060002090601f01602090048101928261081d5760008555610864565b82601f1061083657805160ff1916838001178555610864565b82800160010185558215610864579182015b82811115610863578251825591602001919060010190610848565b5b50905061087191906108a6565b5090565b6040518060a00160405280600081526020016060815260200160008152602001606081526020016000151581525090565b5b808211156108bf5760008160009055506001016108a7565b5090565b60006108d66108d184610c5c565b610c37565b9050828152602081018484840111156108ee57600080fd5b6108f9848285610d38565b509392505050565b60008135905061091081610ec4565b92915050565b600082601f83011261092757600080fd5b81356109378482602086016108c3565b91505092915050565b60008135905061094f81610edb565b92915050565b60008135905061096481610ef2565b92915050565b6000806000806080858703121561098057600080fd5b600085013567ffffffffffffffff81111561099a57600080fd5b6109a687828801610916565b94505060206109b787828801610940565b935050604085013567ffffffffffffffff8111156109d457600080fd5b6109e087828801610916565b92505060606109f187828801610901565b91505092959194509250565b60008060408385031215610a1057600080fd5b6000610a1e85828601610955565b9250506020610a2f85828601610901565b9150509250929050565b6000610a458383610b28565b905092915050565b610a5681610ce2565b82525050565b6000610a6782610c9d565b610a718185610cc0565b935083602082028501610a8385610c8d565b8060005b85811015610abf5784840389528151610aa08582610a39565b9450610aab83610cb3565b925060208a01995050600181019050610a87565b50829750879550505050505092915050565b610ada81610cf4565b82525050565b610ae981610cf4565b82525050565b6000610afa82610ca8565b610b048185610cd1565b9350610b14818560208601610d47565b610b1d81610eb3565b840191505092915050565b600060a083016000830151610b406000860182610ba5565b5060208301518482036020860152610b588282610aef565b9150506040830151610b6d6040860182610ba5565b5060608301518482036060860152610b858282610aef565b9150506080830151610b9a6080860182610ad1565b508091505092915050565b610bae81610d2e565b82525050565b610bbd81610d2e565b82525050565b6000604082019050610bd86000830185610a4d565b610be56020830184610bb4565b9392505050565b60006020820190508181036000830152610c068184610a5c565b905092915050565b6000604082019050610c236000830185610bb4565b610c306020830184610ae0565b9392505050565b6000610c41610c52565b9050610c4d8282610dac565b919050565b6000604051905090565b600067ffffffffffffffff821115610c7757610c76610e84565b5b610c8082610eb3565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000610ced82610d0e565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015610d65578082015181840152602081019050610d4a565b83811115610d74576000848401525b50505050565b60006002820490506001821680610d9257607f821691505b60208210811415610da657610da5610e55565b5b50919050565b610db582610eb3565b810181811067ffffffffffffffff82111715610dd457610dd3610e84565b5b80604052505050565b6000610de882610d2e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610e1b57610e1a610e26565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b610ecd81610cf4565b8114610ed857600080fd5b50565b610ee481610d00565b8114610eef57600080fd5b50565b610efb81610d2e565b8114610f0657600080fd5b5056fea264697066735822122048d88defc4f690774bc5c1a79f9fb4d27ef4092a6822518a08b0ae8e8c1caccb64736f6c63430008040033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80636aa835a81461005157806376d9e5a01461006d578063c079766d1461008b578063f2bc01ff146100a7575b600080fd5b61006b600480360381019061006691906109fd565b6100c5565b005b6100756101cd565b6040516100829190610bec565b60405180910390f35b6100a560048036038101906100a0919061096a565b6101de565b005b6100af610341565b6040516100bc9190610bec565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff166001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156101c9578060008381548110610167577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906005020160040160006101000a81548160ff0219169083151502179055507fa4f349f92993cc89f62be8c4bead1bd7d76d2e9c4d05da59739c6e0dd75f042c82826040516101c0929190610c0e565b60405180910390a15b5050565b60606101d96001610352565b905090565b60008080549050905060006040518060a001604052808381526020018781526020018661ffff16815260200185815260200184151581525090806001815401808255809150506001900390600052602060002090600502016000909190919091506000820151816000015560208201518160010190805190602001906102659291906107ef565b5060408201518160020155606082015181600301908051906020019061028c9291906107ef565b5060808201518160040160006101000a81548160ff0219169083151502179055505050336001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f10545577c692a22f651e69221c47ad4418e40434b36f4e2411bc54007aa8cbb93382604051610332929190610bc3565b60405180910390a15050505050565b606061034d6000610352565b905090565b60606000808054905067ffffffffffffffff81111561039a577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156103d357816020015b6103c0610875565b8152602001906001900390816103b85790505b5090506000805b6000805490508110156106c1573373ffffffffffffffffffffffffffffffffffffffff166001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156104b057508415156000828154811061048d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906005020160040160009054906101000a900460ff161515145b156106ae57600081815481106104ef577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600502016040518060a00160405290816000820154815260200160018201805461052290610d7a565b80601f016020809104026020016040519081016040528092919081815260200182805461054e90610d7a565b801561059b5780601f106105705761010080835404028352916020019161059b565b820191906000526020600020905b81548152906001019060200180831161057e57829003601f168201915b50505050508152602001600282015481526020016003820180546105be90610d7a565b80601f01602080910402602001604051908101604052809291908181526020018280546105ea90610d7a565b80156106375780601f1061060c57610100808354040283529160200191610637565b820191906000526020600020905b81548152906001019060200180831161061a57829003601f168201915b505050505081526020016004820160009054906101000a900460ff161515151581525050838381518110610694577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018190525081806106aa90610ddd565b9250505b80806106b990610ddd565b9150506103da565b5060008167ffffffffffffffff811115610704577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561073d57816020015b61072a610875565b8152602001906001900390816107225790505b50905060005b828110156107e357838181518110610784577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101518282815181106107c5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018190525080806107db90610ddd565b915050610743565b50809350505050919050565b8280546107fb90610d7a565b90600052602060002090601f01602090048101928261081d5760008555610864565b82601f1061083657805160ff1916838001178555610864565b82800160010185558215610864579182015b82811115610863578251825591602001919060010190610848565b5b50905061087191906108a6565b5090565b6040518060a00160405280600081526020016060815260200160008152602001606081526020016000151581525090565b5b808211156108bf5760008160009055506001016108a7565b5090565b60006108d66108d184610c5c565b610c37565b9050828152602081018484840111156108ee57600080fd5b6108f9848285610d38565b509392505050565b60008135905061091081610ec4565b92915050565b600082601f83011261092757600080fd5b81356109378482602086016108c3565b91505092915050565b60008135905061094f81610edb565b92915050565b60008135905061096481610ef2565b92915050565b6000806000806080858703121561098057600080fd5b600085013567ffffffffffffffff81111561099a57600080fd5b6109a687828801610916565b94505060206109b787828801610940565b935050604085013567ffffffffffffffff8111156109d457600080fd5b6109e087828801610916565b92505060606109f187828801610901565b91505092959194509250565b60008060408385031215610a1057600080fd5b6000610a1e85828601610955565b9250506020610a2f85828601610901565b9150509250929050565b6000610a458383610b28565b905092915050565b610a5681610ce2565b82525050565b6000610a6782610c9d565b610a718185610cc0565b935083602082028501610a8385610c8d565b8060005b85811015610abf5784840389528151610aa08582610a39565b9450610aab83610cb3565b925060208a01995050600181019050610a87565b50829750879550505050505092915050565b610ada81610cf4565b82525050565b610ae981610cf4565b82525050565b6000610afa82610ca8565b610b048185610cd1565b9350610b14818560208601610d47565b610b1d81610eb3565b840191505092915050565b600060a083016000830151610b406000860182610ba5565b5060208301518482036020860152610b588282610aef565b9150506040830151610b6d6040860182610ba5565b5060608301518482036060860152610b858282610aef565b9150506080830151610b9a6080860182610ad1565b508091505092915050565b610bae81610d2e565b82525050565b610bbd81610d2e565b82525050565b6000604082019050610bd86000830185610a4d565b610be56020830184610bb4565b9392505050565b60006020820190508181036000830152610c068184610a5c565b905092915050565b6000604082019050610c236000830185610bb4565b610c306020830184610ae0565b9392505050565b6000610c41610c52565b9050610c4d8282610dac565b919050565b6000604051905090565b600067ffffffffffffffff821115610c7757610c76610e84565b5b610c8082610eb3565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000610ced82610d0e565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015610d65578082015181840152602081019050610d4a565b83811115610d74576000848401525b50505050565b60006002820490506001821680610d9257607f821691505b60208210811415610da657610da5610e55565b5b50919050565b610db582610eb3565b810181811067ffffffffffffffff82111715610dd457610dd3610e84565b5b80604052505050565b6000610de882610d2e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610e1b57610e1a610e26565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b610ecd81610cf4565b8114610ed857600080fd5b50565b610ee481610d00565b8114610eef57600080fd5b50565b610efb81610d2e565b8114610f0657600080fd5b5056fea264697066735822122048d88defc4f690774bc5c1a79f9fb4d27ef4092a6822518a08b0ae8e8c1caccb64736f6c63430008040033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
